/*
  * @filename	:common.js
  * @author		:Pom
  * @email		:studicms@live.cn
  * @time		:2011-10-10
  * @explain	:封装的函数和方法
  * @version	:1.0
  */
 
//去除最后ul中最后一个li 的边框
function clearBorder(param,className){
	var s = $("#"+param+">li:last");
	if(className=='' && className==undefined){
		return;
	}else{
		s.addClass(className);
	}
	//console.log(s);
	s.css({
		"border-right" : "0 none"
	});
}
function clearBorderBottom(param){
	var s = $("#"+param+" li:last");
	//console.log(s);
	s.css({
		"border-bottom" : "0 none"
	});
}
//top 3 change red color
function topRedColor(boxid){
	var b = $("#"+boxid+">li:lt(3)");
	b.addClass("topRedColor");
};
//tab 选项卡
function tabs(tabHead,tabBox,className,tabBoxChild){
	$("#" + tabHead + ">li").mouseover(function(){
       $(this).addClass(className).siblings("li").removeClass(className);
       var index = $("#" + tabHead + ">li").index(this);
       $("#" + tabBox + ">" + tabBoxChild).eq(index).show().siblings().hide();
       return false;
    });
}
//单行文字滚动效果
function autoScroll(parentId,childElement){
	var boxWrap = $(parentId);
	var interval = 2000 ;
	var removed;
	boxWrap.hover(function(){
		//鼠标移动到滚动区域，停止滚动，clearInterval() 方法的参数必须是由 setInterval() 返回的 ID 值。
		clearInterval(removed);
	},function(){
		//execFunc使用了闭包，得到了执行函数的返回值，赋给了clearInterval当第一个参数使用
		var execFunc = function(){
			return function(){
					
				if(boxWrap.has(childElement)){
					//取得容器内的第一个子元素，这个子元素是变化的。
					var field = boxWrap.find(childElement + ':first');
					var fieldHeight = field.height();
					field.animate({
						//通过取负margin值,隐藏第一行
						marginTop : -fieldHeight + 'px'
					},600,function(){
						//将第一个子元素margin值置零,并插入到最后,实现无缝滚动
						field.css({
							marginTop : 0
						}).appendTo(boxWrap);
					});
				}
				
			}
		}
		removed = setInterval(execFunc(),interval)
	}).trigger('mouseleave'); 	//函数载入时,模拟执行mouseleave,即自动滚动,鼠标mouveout即停止播放。
		
}



(function($) {
	$.fn.extend({
		Scroll : function(opt, callback) {
			//参数初始化
			if(!opt)
				var opt = {};
			var _btnUp = $("#" + opt.up);
			//Shawphy:向上按钮
			var _btnDown = $("#" + opt.down);
			//Shawphy:向下按钮
			var timerID;
			var _this = this.eq(0).find("ul:first");
			var lineH = _this.find("li:first").height(), //获取行高
			line = opt.line ? parseInt(opt.line, 10) : parseInt(this.height() / lineH, 10), //每次滚动的行数，默认为一屏，即父容器高度
			speed = opt.speed ? parseInt(opt.speed, 10) : 500;
			//卷动速度，数值越大，速度越慢（毫秒）
			timer = opt.timer//?parseInt(opt.timer,10):3000; //滚动的时间间隔（毫秒）
			if(line == 0)
				line = 1;
			var upHeight = 0 - line * lineH;
			//滚动函数
			var scrollUp = function() {
				_btnUp.unbind("click", scrollUp);
				//Shawphy:取消向上按钮的函数绑定
				_this.animate({
					marginTop : upHeight
				}, speed, function() {
					for( i = 1; i <= line; i++) {
						_this.find("li:first").appendTo(_this);
					}
					_this.css({
						marginTop : 0
					});
					_btnUp.bind("click", scrollUp);
					//Shawphy:绑定向上按钮的点击事件
				});
			}
			//Shawphy:向下翻页函数
			var scrollDown = function() {
				_btnDown.unbind("click", scrollDown);
				for( i = 1; i <= line; i++) {
					_this.find("li:last").show().prependTo(_this);
				}
				_this.css({
					marginTop : upHeight
				});
				_this.animate({
					marginTop : 0
				}, speed, function() {
					_btnDown.bind("click", scrollDown);
				});
			}
			//Shawphy:自动播放
			var autoPlay = function() {
				if(timer)
					timerID = window.setInterval(scrollUp, timer);
			};
			var autoStop = function() {
				if(timer)
					window.clearInterval(timerID);
			};
			//鼠标事件绑定
			_this.hover(autoStop, autoPlay).mouseout();
			_btnUp.css("cursor", "pointer").click(scrollUp).hover(autoStop, autoPlay);
			//Shawphy:向上向下鼠标事件绑定
			_btnDown.css("cursor", "pointer").click(scrollDown).hover(autoStop, autoPlay);
		}
	})
})(jQuery);